package com.xlsx.utils;

import cn.hutool.core.io.FileUtil;
import org.apache.poi.xssf.usermodel.*;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class DownTemp {

    public static void export()  throws IOException {
        // 1.创建一个工作簿。xlsx模板
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFCellStyle titleCellStyle = ExcelUtils_Wang.titleCellStyle(workbook);
        XSSFCellStyle cellStyle = workbook.createCellStyle();

        // 2.创建一个工作表
        XSSFSheet sheet = workbook.createSheet( "User");
        List<String> headrow = new ArrayList<>();
        headrow.add("字段名");
        headrow.add("字段描述");
        headrow.add("数据类型");
        headrow.add("是否可空");
        headrow.add("字段详细说明");
        headrow.add("用户表");
        //设置列宽
        // 设置列宽
        for(int i=0;i<headrow.size();i++){
            sheet.setColumnWidth(i,6000);//设置列宽
        }
        // 3.创建行。第一行
        XSSFRow row = sheet.createRow(0);
        ExcelUtils_Wang.setRow(row,headrow,titleCellStyle);

        // 设置表标注为红色
        XSSFCell cell0_5 = row.getCell(5);
        XSSFCellStyle xssfCellStyle = ExcelUtils_Wang.bgColor(cellStyle, 255, 149, 58);
        cell0_5.setCellStyle(xssfCellStyle);
        // 创建行。第二行
        List<String> rowCell1 = new ArrayList<>();
        rowCell1.add("userName");
        rowCell1.add("用户名称");
        rowCell1.add("VARCHAR2(150)");
        rowCell1.add("N/Y");
        rowCell1.add("用户的昵称");
        XSSFRow row1 = sheet.createRow(1);
        ExcelUtils_Wang.setRow(row1,rowCell1);

        // 5.生成一张表。
        String path = path();
        FileOutputStream fileOutputStream = new FileOutputStream(path + "xlsx模板.xlsx");
        System.out.println("文件生成路径："+path + "xlsx模板.xlsx");
        // 输出
        workbook.write(fileOutputStream);
        // 6.关闭流
        fileOutputStream.close();
        System.out.println("xlsx模板生成成功！");
    }

    public static String path(){
        String desktopPath = System.getProperty("user.home") + "\\Desktop\\";

        if(FileUtil.isEmpty(new File(desktopPath))){
            // 桌面路径不存在、检查xlsx路径是否存在 不存在创建
            String path = "D:\\xlsx\\";
            if (FileUtil.isEmpty(new File(path))) {
                FileUtil.mkdir(path);
            }
            return path;
        }else {
            return desktopPath;
        }
    }
}
